package com.cldz.service;

import com.cldz.common.dto.req.VirtualChannelDto;
import com.cldz.common.dto.res.VirtualChannelResDto;
import com.cldz.entity.VirtualChannel;
import com.cldz.utils.BeanCopyUtil;
import com.cldz.dao.VirtualChannelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @ Author     ：lixiao.
 * @ Date       ：Created in 8:57 2018/12/19
 * @ Description：
 * @ Modified By：
 */
@Service("virtualChannelService")
public class VirtualChannelService {

    @Autowired
    private VirtualChannelMapper virtualChannelMapper;


    public List<VirtualChannelResDto> getVirtualChannelProperties(VirtualChannelDto virtualChannelDto){
        List<VirtualChannel> virtualChannelProperties = virtualChannelMapper.getVirtualChannelProperties(virtualChannelDto);
        return copyListBean(virtualChannelProperties);
    }

    public Integer getVirtualChannelPropertiesAmount(VirtualChannelDto virtualChannelDto){
        return virtualChannelMapper.getVirtualChannelPropertiesAmount(virtualChannelDto);
    }


    public VirtualChannelDto getSpecifyVirtualChannelProperty(VirtualChannelDto virtualChannelDto) {
        VirtualChannel virtualChannel = virtualChannelMapper.getSpecifyVirtualChannelProperty(virtualChannelDto);
        VirtualChannelDto dto = new VirtualChannelDto();

        if(virtualChannel != null){
            BeanCopyUtil.copyPropertiesIgnoreNull(virtualChannel, dto);
        }
        return dto;
    }

    private List<VirtualChannelResDto> copyListBean(List<VirtualChannel> devListByTypeID) {
        List<VirtualChannelResDto> list = new ArrayList<>();
        for (VirtualChannel device : devListByTypeID) {
            VirtualChannelResDto dto = new VirtualChannelResDto();
            BeanCopyUtil.copyPropertiesIgnoreNull(device, dto);
//            BeanUtils.copyProperties(device, dto);
            list.add(dto);
        }
        return list;
    }


}
